package com.guxingke.typecho4j.util;

import org.markdownj.MarkdownProcessor;

/**
 * 关于String操作的工具类
 * 
 * @author guxingke
 *
 */
public class StringUtil {

	private StringUtil() {
	}

	/**
	 * markdown处理类，来自markdownj
	 */
	private static final MarkdownProcessor PROCESSOR = new MarkdownProcessor();

	/**
	 * 将markdown字符串转换为html字符串
	 * 
	 * @param markdownSource
	 * @return
	 */
	public static String convertToHtml(String markdownSource) {
		return PROCESSOR.markdown(markdownSource);
	}

	/**
	 * 根据类型和关键字获取归档组件的属性
	 * 
	 * @param type
	 * @param key
	 * @return
	 */
	public static String getStringByTag(String type, String key) {
		if ("/tag".equals(type)) {
			return "标签 " + key + " 下的文章";
		} else if ("/category".equals(type)) {
			return "分类 " + key + " 下的文章";
		} else if ("/author".equals(type)) {
			return "作者" + key + " 发布的文章";
		} else if ("/search".equals(type)) {
			return "包含关键字 " + key + " 的文章";
		} else if ("/archive".equals(type)) {
			return "归档： " + key + " 的文章";
		}
		return null;
	}

	/**
	 * 根据errorCode，返回对应的详细信息
	 * 
	 * @param errorCode
	 * @return
	 */
	public static String getErrorInfoByErrorCode(Integer errorCode) {
		if (errorCode == 700) {
			return "用户名和密码不能为空";
		} else if (errorCode == 701) {
			return "用户名或密码错误";
		} else if (errorCode == 702) {
			return "两处密码不一致";
		} else if (errorCode == 703) {
			return "未知原因，修改密码失败";
		}
		return null;
	}

	/**
	 * 字符串为 null 或者为 "" 时返回 true
	 */
	public static boolean isBlank(String str) {
		return str == null || "".equals(str.trim()) ? true : false;
	}

	/**
	 * 字符串不为 null 而且不为 "" 时返回 true
	 */
	public static boolean notBlank(String str) {
		return str == null || "".equals(str.trim()) ? false : true;
	}
}
